package com.hopedove.workshop

import com.hopedove.workshop.api.WorkshopApi
import com.hopedove.workshop.data.WorkshopUserSessionManager
import com.hopedove.workshop.repository.WorkshopUserRepository
import com.hopedove.workshop.viewmodel.*
import com.hopedove.workshop.viewmodel.shiftchange.ShiftChangeHomeViewModel
import com.hopedove.workshop.viewmodel.shiftchange.ShiftChangeQueryViewModel
import com.hopedove.workshop.viewmodel.shiftchange.ShiftChangeRecordViewModel
import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.dsl.module


val workshopModule = module {

    single { WorkshopApi() }
    single { WorkshopUserSessionManager() }
    single { WorkshopUserRepository(get()) }

    viewModel { WorkshopLoginViewModel(get(), get(), get(), get()) }
    viewModel { WorkshopHomeViewModel() }
    viewModel { WorkshopExchangeBatchViewModel(get(), get(), get()) }
    viewModel { WorkshopRunningSituationViewModel() }
    viewModel { WorkshopRunningSituationRecordViewModel(get(), get()) }
    viewModel { WorkshopRunningSituationQueryViewModel(get(), get(), get()) }
    viewModel { ShiftChangeHomeViewModel() }
    viewModel { ShiftChangeRecordViewModel(get(), get()) }
    viewModel { ShiftChangeQueryViewModel(get(), get(), get()) }

}